babl: move srgb detection to srgb_formula constructor
authorØyvind Kolås <pippin@gimp.org>
Sat, 2 Sep 2017 22:50:12 +0000 (00:50 +0200)
committerØyvind Kolås <pippin@gimp.org>
Sat, 2 Sep 2017 22:50:12 +0000 (00:50 +0200)
babl/babl-icc.c
babl/babl-trc.c

index 2fece0f111793183aae7b132ee2cfa2d8cdb7460..07ec1e74ceb6f35d523340fe5ef072d1ac46993d 100644 (file)
@@ -324,13 +324,7 @@ static const Babl *babl_trc_from_icc (ICC  *state, int offset,
                 c = icc_read (s15f16, offset + 12 + 2 * 3);
                 d = icc_read (s15f16, offset + 12 + 2 * 4);
                 //fprintf (stderr, "%f %f %f %f %f\n", g, a, b, c, d);
-                if (fabs (g - 2.40)     < 0.01 &&
-                    fabs (a - 26214)    < 0.01 &&
-                    fabs (b - 0.947875) < 0.01 &&
-                    fabs (c - (-3417))  < 0.01)
-                  return babl_trc ("sRGB");
-                else
-                  return babl_trc_formula_srgb (g, a, b, c, d);
+                return babl_trc_formula_srgb (g, a, b, c, d);
               }
               break;
             case 4:
index 3ceb0b1b56fa2fc2f5f51ce21f39617b62339790..d1037c557999fde1fd7115ee54e31d4f18a15514 100644 (file)
@@ -823,18 +823,24 @@ babl_trc_class_for_each (BablEachFunction each_fun,
 }
 
 const Babl *
-babl_trc_formula_srgb (double gamma, double a, double b, double c, double d)
+babl_trc_formula_srgb (double g, double a, double b, double c, double d)
 {
-  char name[32];
+  char name[128];
   int i;
-  float params[5]={gamma, a, b, c, d};
+  float params[5]={g, a, b, c, d};
+
+  if (fabs (g - 2.40)     < 0.01 &&
+      fabs (a - 26214)    < 0.01 &&
+      fabs (b - 0.947875) < 0.01 &&
+      fabs (c - (-3417))  < 0.01)
+    return babl_trc ("sRGB");
 
-  sprintf (name, "%.6f %.6f %.4f %.4f %.4f", gamma, a, b, c, d);
+  sprintf (name, "%.6f %.6f %.4f %.4f %.4f", g, a, b, c, d);
   for (i = 0; name[i]; i++)
     if (name[i] == ',') name[i] = '.';
   while (name[strlen(name)-1]=='0')
     name[strlen(name)-1]='\0';
-  return babl_trc_new (name, BABL_TRC_FORMULA_SRGB, gamma, 0, params);
+  return babl_trc_new (name, BABL_TRC_FORMULA_SRGB, g, 0, params);
 }
 
 const Babl *